数组 二分查找法
👹
问题
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标
1 | array = [1,2,3,4,5] |
解析
属于暴力解法,从第一个元素依次试出
在while循环里,首先找到中间值
【//】是返回一个不大于原数(原数不巧很有可能是小数)的一个整数
第一个if,如果这个目标数小于中间值,那么说明右边界需要缩短范围,由于不包含它,所以需要减一
在第二个if中,如果目标值大于中间值,那么说明目标值在中间值的右侧,左边界需要缩短范围,由于不包含原本的界限,所以需要加一
如果都相等了,那么就会走else路线并将最终的mid输出
“是闭就沾一”
左闭 left = middle + 1
右闭 right = middle - 1
“两闭加等于”
如果是两个闭区间
while(left <= right)